import { RouteObject, RouteMenuObject } from "../router/interface";
import type { MenuProps } from "antd";

type MenuItem = Required<MenuProps>["items"][number];
function hasChildren(item: MenuItem): item is MenuItem & { children: MenuItem[] } {
    return Array.isArray((item as any).children);
}
//RouteObject类型的数组,返回RouteObject类型
export const searchRoute = (key: string, routes: MenuItem[] = []): MenuItem | null => {
    if (!routes.length) return null; // 更改为 null 以表示未找到路由
    for (let item of routes) {
        if (item?.key === key) return item; // 直接返回匹配的 item
        if (hasChildren(item)) {
            // 递归搜索子路由
            const res = searchRoute(key, item.children);
            if (res) return res; // 如果找到，直接返回
        }
    }
    return null; // 未找到时返回 null
};